#ifndef FPLAYER_VIDEOCHANNEL_H
#define FPLAYER_VIDEOCHANNEL_H


#include "Channel.h"
#include <list>

/**
 * author: x-fan
 * date: 2024/1/16
 * desc: 视频传输通道
 */
class VideoChannel : public IChannel {
private:
  //单视频输入
  ICapture *_pCapture = nullptr;

  //多视频输出
  std::list<IRender *> _RenderList;

public:
  using IChannel::IChannel;

  virtual ~VideoChannel() = default;

  bool bindCapture(ICapture *pCapture) override;

  void unbindCapture(ICapture *pCapture) override;

  bool bindRender(IRender *pRender) override;

  void unbindRender(IRender *pRender) override;

  ChannelType getChannelType() override;

  MediaType getMediaType() override;

  const char *getClassName() override;

  void toString() override;
};


#endif //FPLAYER_VIDEOCHANNEL_H
